假设我有以下 Parse 云代码:
// assume myObj is a parse object
myObj.set("field1", "foo");
Parse.Promise.as().then(function()
myObj.save(myObj, {
success: function(savedObj) {
// A
return Parse.Promise.as();
},
error: function(myObj, error) {
// B
return Parse.Promise.as();
}
});
// C
// note that we can get here without any return statement being called
}).then(function() {
// D
});
(现在,我知道对整个事情使用 Promise 会更简单:
myObj.save().then(
...
...但是有些函数不返回 Promise,所以有时您别无选择,只能将 Backbone 风格的成功/错误块与 Promise 混合使用。)
我的问题:
当达到 C 时会发生什么?执行是否会暂停此承诺,直到到达其中一个返回语句,然后执行到达 D?到达 C 后执行是否直接前进到 D,而不等待返回语句?这是一个错误吗?
换句话说,是否可以按照 C、D、A/B 的顺序执行?还是永远是 C、A/B、D?(或者,我想,如果保存完成得很快,比如 A/B、C、D?)