这就是它看起来的样子。
function async doAction() {
await this.waitForData();
// do some other things after data loads
// when data loads it's available in this.data
}
function waitForData() {
if (!this.promise) {
this.promise = new Promise(res => this.promiseResolve = res);
return this.promise;
}
else {
return Promise.resolve(this.data);
}
}
function loadData(data) {
//some things
this.data = data;
if (this.promiseResolve) {
this.promiseResolve(this.data);
}
}
它工作得很好,doaction
等待数据加载,然后开始操作。但这是相当多的代码,有没有更好的方法来做它?
有一些错误与并发调用或调用的意外顺序。我愿意
function waitForData() {
if (!this.promise) {
this.promise = new Promise(res => this.promiseResolve = res);
}
return this.promise;
}
function loadData(data) {
//some things
this.data = data;
if (this.promiseResolve) {
this.promiseResolve(this.data);
this.promiseResolve = null;
} else {
this.promise = Promise.resolve(this.data);
}
}
但除此之外,是的,这是通过承诺连接两个独立事物的方法。
本文向大家介绍你是如何更好地处理Async/Await的异常的?相关面试题,主要包含被问及你是如何更好地处理Async/Await的异常的?时的应答技巧和注意事项,需要的朋友参考一下 @HCLQ 玩node时。。他那么写还是比较常见的。。 你是指 callback 中使用的 error-first 的错误处理方式吗? 这种的确是常见,但是返回 的 我真的没见过。或许可以给些例子?
笔者在很长一段时间内都使用 koa@1 +(generator|bluebird)+ sequelize 这个组合,这个组合并没有什么问题,也很常见,但是到了滥用的地步,导致后来维护和调试起来都很痛苦。若排除 sequelize 这个我们不得不用的模块,从调试 cpuprofile 角度讲讲为什么笔者认为应该用 async/await + Promise 替代 co + generator|blu
哪些场景下使用await/async更好?哪些场景下使用then更好? 我的认为await/async的出现是为了改善then的使用,当比较复杂的时候,await/async会起到作用,当问题比较简单的时候用then。但是我们还是应该选择其中一种,这样代码风格比较统一。 例如我下面这个需求使用的await/async不知道是否合适(是不是变得麻烦了?) 工作1:获得选择列表,并默认选择全部。 工作
我读到过,在中包含异步是async/await的反模式。下面的代码可以工作,但是我想知道如果没有中的,如何实现相同的结果。 谢了。
这是我的方法: 我显示加载程序时,但使用在抛给我一个关于字保留的错误。对于验证,我使用VeeValester 如何使用wait-insidepromise?
问题内容: 以下函数从url获取图像并进行加载,然后返回其宽度和高度: 问题是,如果我做这样的事情: 我得到,因为该函数运行但图像尚未加载。 仅当照片已加载且宽度和高度已可用时,如何使用等待/异步返回值? 问题答案: 如何使用/ 将此回调函数转换为Promise? 你不知道与往常一样,您可以使用构造函数。没有语法糖。 仅当照片已加载且宽度和高度已经可用时,如何使用/ 记录值? 你可以做