多项选择题
针对代码:async function getTitle(url) { let response = await fetch(url); let html = await response.text(); return html.match(/<title>([\s\S]+)<\/title>/i)[1];}getTitle(‘https://tc39.github.io/ecma262/’).then(console.log)// “ECMAScript 2017 Language Specification”说法正确的是()
A.函数getTitle内部有三个操作:抓取网页、取出文本、匹配页面标题。只有这三个操作全部完成,才会执行then方法里面的console.log
B.async函数返回的Promise对象,必须等到内部所有await命令后面的Promise对象执行完,才会发生状态改变,除非遇到return语句或者抛出错误
C.只有async函数内部的异步操作执行完,才会执行then方法指定的回调函数
D.整个程序不会有任何输出
相关考题
-
多项选择题
async function f() { try { await Promise.reject(‘出错了’); } catch(e) { } return await Promise.resolve(‘hello world’);}f().then(v => console.log(v))代码是执行正确的是()
A.整个代码会打印hello world
B.await Promise.resolve(’hello world’);语句不会执行
C.await Promise.resolve(’hello world’);会被执行
D.会打印出“出错了” -
多项选择题
async function f() { await new Promise(function (resolve, reject) { throw new Error(‘出错了’); });}f().then(v => console.log(v)).catch(e => console.log(e))()
A.上述代码回打印出Error:出错了
B.如果await后面的异步操作出错,那么等同于async函数返回的Promise对象被reject
C.async函数f执行后,await后面的Promise对象会抛出一个错误对象,导致catch方法的回调函数被调用,它的参数就是抛出的错误对象
D.在页面中报错:Error:出错了 -
多项选择题
async/await使用的注意点正确的是()
A.await命令后面的Promise对象,运行结果可能是rejected,所以最好把await命令放在try...catch代码块中
B.多个await命令后面的异步操作,如果不存在继发关系,最好让它们同时触发
C.await命令只能用在async函数之中,如果用在普通函数,就会报错
D.如果确实希望多个请求并发执行,可以使用Promise.all方法
