创建后,可以将.then添加到承诺中吗?

答应让我感到困惑。


我正在尝试提供模拟数据服务来模仿axios。


我的模拟put调用将一个targetUrl传递给_fetch它,然后查看它是否是有效的URL并返回带有延迟的.resolve的新Promise。


const _returnResponse = (mockData, time = 0) => new Promise((resolve) => {

    setTimeout(() => {

        resolve(mockData);

    }, time);

});

或带有延迟的.reject的新Promise


const _returnError = (time = simulatedDelay) => {

    const returnValue = new Promise(((resolve, reject) => {

        setTimeout(() => {

            reject(new Error('error'));

        }, time);

    }));

    return returnValue;

};

但是,当我进行模拟put调用时,这将返回模拟数据,调用方法将其解释为成功,并在控制台中登录.then


    put(target, putBody) {

        const returnValue = _fetch(target, simulatedDelay)

        returnValue.then(response => _console('PUT', target, response, putBody));

        return returnValue;

    },

但是使用无效的目标控制台记录未捕获的错误


或这可以正确处理错误,但是控制台记录了未定义的响应


    put(target, putBody) {

        const returnValue = _fetch(target, simulatedDelay).then(response => _console('PUT', target, response, putBody));

        return returnValue;

    },

这是调用方法:


    saveStuff({ commit, state }, newStuff) {

        //other code


        return this.$mockAxios.put(url, putBody)

            .then((response) => {

                return response;

            });

    },

我觉得自己已经完全丢失了一些东西,并且已经研究了几个小时,但仍然没有得到。


慕桂英3389331
浏览 111回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript