美文网首页
fetch 中的.then()

fetch 中的.then()

作者: 三棱镜的世界 | 来源:发表于2020-03-28 09:47 被阅读0次

    先看一段代码:

    fetch('http://localhost:3000/books?id=123456',{
        method:'get'
    })
    .then(function(value1){
        console.log(value1);
        return 'hello';
    })
    .then(function(value2){
        console.log(value2);
        return 'HelloWorld';
    })
    /*
    .then(function(data){
         console.log(data);
         return data.text();
     })
    */
    .then(data=>{
        console.log(data);
    })
    
    // 接口
    app.get('/books', (req, res) => {
      res.send('传统的URL传递参数!' + req.query.id)
    })
    
    输出结果
    在这段代码中我们发现,最初传入的是一个对象,紧接着后一个.then()的传入参数使用了前一个.then()的返回值,换句话说,就是后一个then使用前一个then的封装结果

    那么现在去掉注释:


    出现报错
    .then(function(value2){
        console.log(value2);
        return 'HelloWorld';
    })
    .then(function(data){
         console.log(data);
         return data.text();
     })
    

    text()方法属于fetch API的一部分,返回一个Promise实例对象,用于获取后台返回的数据

    这段代码中,传入的data是上一步封装的字符串,所以此时用data.text()报错,除非data为对象

    下面演示正确使用方式:

    fetch('http://localhost:3000/books?id=123456',{
         method:'get'
    })
    .then(function(data){
         console.log(data);
         console.log(typeof(data));
         return data.text();
    })
    .then(data=>{
         console.log(data);
         console.log(typeof(data));
    })
    
    正确用法

    输出了接口询问的内容,为String类型

    相关文章

      网友评论

          本文标题:fetch 中的.then()

          本文链接:https://www.haomeiwen.com/subject/hwcjuhtx.html