这更像是一个语法/可读性问题。假设我有这个:
ProductsService.getProducts()
.then(function (products) {
model.products = products;
}, function(){
//handle error
});
如果承诺得到解决,我会使用promise的结果填充model.products。有没有办法组织这个代码,所以它更像是:
model.products = //result of promise
我更喜欢将变量设置为前置和中心而不是将其置于承诺中。
答案 0 :(得分:0)
在ES6及以下版本中,这是不可能的。
另外,在ES7中,我们可以使用await
in combination with an async
function来实现您正在寻找的“可读异步代码”类型:
ProductsService.getProducts = async function() {
// returns a promise...
};
model.products = await ProductsService.getProducts();
如果你真的急于使用它,the functionality is available using Babel。
答案 1 :(得分:0)
你可以这样做:
function setProduct(products) {
model.products = products;
}
function foo(){
return ProductsService.getProducts();
}
foo().then(setProduct);
但如前所述,你必须等待ES7或使用打字稿/巴贝尔