首页 > 技术文章 > Promise-async-await处理函数

love314159 2018-05-24 16:42 原文

    /*function request() {  // 此处的request返回的是一个Promise
            return new Promise((resolve, reject) => {
                ajax({
                    url: 'www.someurl.com',
                    onSuccess(res) {
                        resolve(res);
                    },
                    onFail(err) {
                        reject(err);
                    }
                 });
            });
        }*/
        function request2() {  // 此处的request返回的是一个Promise
            return new Promise((resolve, reject) => {
                ajax({
                    url: 'www.someurl.com',
                    onSuccess(res) {
                        resolve(res);
                    },
                    onFail(err) {
                        reject(err);
                    }
                 });
            });
        }
        /*let it = gen();
        let p = it.next().value;  // p是yield返回的Promise
        p.then(res => it.next(res),
            err => it.throw(err)  // 发生错误时,将错误抛入生成器
        );

        function* gen() {
            try {
                let response = yield request();
                console.log(response.text);
            } catch (error) {
                console.log('Ooops, ', error.message);  // 可以捕获Promise抛进来的错误!
            }
        }
*/

        fetch(request2);
        async function fetch(request1) {
            //console.log(request1)
        try {
            let response = await request1();  // request定义同上一端段示例代码
            console.log(response1.text);
        } catch (error) {
            console.log('Ooops, ', error.message);
        }
    }

 

推荐阅读