使用promise链接同步与异步功能时的工作流
Workflow when chaining synchronous with asynchronous function with promises
如果我用promise链接同步和异步函数,工作流会是什么样子?
案例1:
synchronousFunc(x).then(asynchronousFunc(resultOfSynchronousFunc));
同步Func(x(
|----------|
异步Func(未定义(
|---------------|
案例2:
asynchronousFunc(x).then(synchronousFunc(resultOfAsynchronousFunc));
异步Func(x(
|--------|
synchronousFunc(未定义(
|-------------|
案例3:
asynchronousFunc(x).then(function(){
return synchronousFunc(resultOfAsynchronousFunc);
});
异步Func(x(
|---------|
synchronousFunc(AsynchronousFunc的结果(
………|------------------|
案例4:
synchronousFunc(x).then(function(){
return asynchronousFunc(resultOfSynchronousFunc);
});
同步Func(x(
|---------|
异步Func(未定义(
|------------|
Lets-put异步函数是一个返回promise(或then
-可对象,请参阅MDN(的函数。同步函数是一个返回任何其他结果(非二进制(的函数。
异步函数返回promise"immediate">,即在promise被解析之前(promise状态为"pending">,尚未调用then
(。
funcSync(x).then(funcAsync) // Error if `funcSync` returns object without `then` method.
// Should be:
var res = funcSync(x);
var promise = funcAsync(res);
promise.then(..)
作为一个自变量,取一个对异步函数的结果起作用的函数:fetchDataAsync.then( data => {..} )
情况2应该是:
fetchDataAsync(x).then(processDataSync);
修复你所有的案例太平凡了,请阅读MDN。
相关文章:
- 为什么获胜'我的自定义功能工作
- 如何在批准露天共享中工作流的审核步骤之前添加确认对话框
- 当我用鼠标左键点击时,让这个功能工作起来
- 用于绘制工作流图的JavaScript框架
- 将异步工作流更改为承诺(蓝鸟)
- if 子句在 JavaScript 中限定工作流
- 了解 JavaScript 对象实例或工作流
- 只有当屏幕大小为一定宽度时,才希望该功能工作
- 主题和弹性逻辑工作流
- 可以't使切换功能工作
- 滚动功能工作方向错误
- 未捕获的类型错误:对象#<HTML对象元素>没有方法'重新绘制工作流'
- 如何在gump工作流中同时在独立文件和依赖文件中输出javascript
- 在CRM 2011中从JavaScript执行工作流
- 访问Alfresco工作流I'我从JavaScript开始
- 使用 JavaScript 框架的设计器工作流
- 节点 JS 使用异步请求同步工作流
- iOS PhoneGap 调试工作流
- 通过 JavaScript 结束 nintex 工作流
- 使用promise链接同步与异步功能时的工作流