如果我有承诺链,并且它已成功完成
var a = new Promise(function(resolve, reject) {
...
})
.then(...)
.then(...)
.then(function(val) {
console.log('done');
})
我应该如何启动同步代码或其他承诺链?也许使用window.setTimeout()
我不想在最后的.then()中调用函数内部的同步代码,因为这个函数将一直存在,直到同步代码结束。而且我想将代码分成两部分,因为这些部分执行不同的逻辑。
修改
我应该这样做吗?
// this first pormise do auth work
var auth_work = function() {
return new Promise(function(resolve, reject) {
...
})
.then(...)
.then(...)
.then(function(val) {
console.log('done');
// when auth procedure is finised I want to download resources
return download_resources();
});
}
var download_resources = function(){
return new Promise(function(resolve, reject) {
...
})
.then(...)
.then(...)
.then(function(val){
return do_actual_work();
});
}
var do_actual_work = function() {
return new Promise(function(resolve, reject) {
...
})
.then(...)
.then(...)
.then(function(val) {
...
});
}
var p = auth_work();
如果在最后.then()我会做这个window.setTimeout(1, download_resources);
答案 0 :(得分:0)
如果在最后
,该怎么办?.then()
我会做window.setTimeout(1, download_resources);
这完全没有意义,原因有两个:
download_resources
的结果