相关疑难解决方法(0)

正确尝试...使用Async/Await捕获语法

我喜欢Async/Await在Typescript等中提供的新功能的平坦性.但是,我不确定我喜欢这样一个事实,即我必须awaittry...catch块的外部声明变量才能在以后使用它.像这样:

let createdUser
try {
    createdUser = await this.User.create(userInfo)
} catch (error) {
    console.error(error)
}

console.log(createdUser)
// business
// logic
// goes
// here
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我,但似乎最好不要在机构中放置多行业务逻辑try,所以我只留下createdUser在块外声明,在块中分配它的替代方案,以及然后用它.

在这种情况下,最佳做法是什么?

javascript try-catch promise async-await ecmascript-2017

49
推荐指数
3
解决办法
2万
查看次数

如何在Javascript中忘记"等待"异步函数时发出警告?

我正在使用Babel和Webpack.如果我忘记await了异步功能,它通常会被忽视.偶尔,如果我忘记了await,异步函数中会出现错误,我得到一个Unhandled promise rejection.然后,我意识到我忘记了await.

当我忘记添加一个时,有没有办法得到警告await

javascript webpack babeljs

14
推荐指数
3
解决办法
1202
查看次数

如何阻止 async/await 在函数中冒泡?

假设我有一个函数 A,它使用函数 B,而函数 B 使用 C,等等:

A -> B -> C -> D and E

现在假设函数 D 必须使用async/await。这意味着我必须先使用async/await函数的调用C,然后再使用函数的调用B,依此类推。我知道这是因为它们相互依赖,如果其中一个正在等待函数解析,那么它们都必须等待函数解析。我可以采取哪些替代方法来使其更清洁?

node.js promise async-await

7
推荐指数
1
解决办法
1690
查看次数

我应该总是在JavaScript中的所有函数中返回promise吗?

我在想,能在JavaScript函数中返回promises 是一种好方法吗?

让我们假设我们有一个验证用户名的函数的情况.主功能只使用其他2个执行不同检查的功能.

请注意,所有函数名称都只是示例.

// Returns a boolean
function validateUsername (username) {
  return validateUsernameFormat(username) &&
    isUsernameReserved(username);
}

// Returns a boolean
function validateUsernameFormat (username) {
  return typeOf(username) === 'string' &&
    username.match(/^\[a-z0-9]{8,20}$/);
}

// Returns a boolean
function isUsernameNotReserved (username) {
  return ['igor', 'kristina'].indexOf(username) === -1;
}
Run Code Online (Sandbox Code Playgroud)

现在让我们假设我们通过调用API检查我们的数据库中是否已存在给定的用户名来增强我们的验证.

// Now returns a promise
function isUsernameNotReserved (username) {
  return API.checkIfUserNameAlreadyExists(username);
}
Run Code Online (Sandbox Code Playgroud)

这意味着我们现在还必须更改主validateUsername函数,因为它现在还需要返回promise.这也可能意味着我们必须修改所有使用validateUsername函数的函数.

但是,如果我们从头开始承诺所有功能呢?

选项A - 所有函数都返回promise

// Returns a promise
function validateUsername (username) { …
Run Code Online (Sandbox Code Playgroud)

javascript promise

3
推荐指数
1
解决办法
1172
查看次数