小编125*_*748的帖子

jsfiddle jquery ajax没有按预期返回数据

我正在尝试对jsfiddle进行jquery ajax调用但是遇到了问题:

var ajax1 = function () {
    return $.ajax({
        type: "post",
        url: "/echo/json/",
        data: {
            name: "thomas!"
        },
        dataType: 'json'
    });
};

var res = ajax1();
console.log(res);
Run Code Online (Sandbox Code Playgroud)

将整个延迟对象打印到控制台.它包括responseText我认为可能是我应该尝试访问的内容,但我未定义.

console.log(res.responseText);
Run Code Online (Sandbox Code Playgroud)

我之前用HTML 尝试了一次,一切似乎都有效,但JSON由于某种原因失败了.

javascript ajax jquery jsfiddle jquery-deferred

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

为什么在这个函数中返回jquery AJAX promise不能给我数据呢?

这个AJAX适用于jsfiddle

var a = $.ajax({
    url: "/echo/json/",
    type: "post",
    data: {
        json: JSON.stringify({
            a: true
        })
    },
    dataType: "json"
});

a.done(function (data) {
   console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

当我创建a函数并返回AJAX承诺时,为什么它不起作用?

var a = function () {
    return $.ajax({
        url: "/echo/json/",
        type: "post",
        data: {
            json: JSON.stringify({
                a: true
            })
        },
        dataType: "json"
    });
}

a.done(function (data) {

    console.log(data);

});
Run Code Online (Sandbox Code Playgroud)

这不是正确的语法吗?好吧,显然不是,但我怎样才能在函数中构建AJAX请求?小提琴

javascript ajax jquery deferred jquery-deferred

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

为什么一个!函数之前没有返回布尔值相反的值?

我正在阅读这个问题.我有点理解发生了什么,但我很困惑

!function foo() {
  console.log(true) ;
}()
Run Code Online (Sandbox Code Playgroud)

不回来false.

!function () {}()这也将返回与函数返回值相反的布尔值,在本例中为true,因为!undefined为true.如果您希望实际返回值是调用的结果,那么尝试这样做:

"也将返回布尔对面"让我觉得false应该返回.为什么不呢.alert(!true); //false

javascript iife

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

这个边界发生了什么?

我正在玩CSS边框并做到这一点:

border-style: double dashed dashed solid;
Run Code Online (Sandbox Code Playgroud)

有人能解释为什么这样做吗?改变border-width也做奇怪的事情.

JSBIN

奇怪边框的截图

css

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

IIFE内部的功能无法识别

我有一个IIFE,我试图制作一个书签.我希望弹出书签的模式会有一些调用函数的按钮.但是,当我有这样的结构时:

(function(){

   var __myFn = function(str){ //also have tried function __myFn(){..}
      alert(str);
   }

   //some AJAX that builds HTML with the `result`s

   document.getElementById("resultDiv").innerHTML = "<span onclick='__myFn(" + result.someData+ ")'>test</span>


}());
Run Code Online (Sandbox Code Playgroud)

我明白了 Uncaught ReferenceError: __myFn is not defined

如何识别此功能?还有另外一种方法吗?

javascript ajax closures iife

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

使用underscoreand和lodash库通过ID从数组中获取项目

我有这个数组:

var arrA = [
      {"id": 1, "name": "Manager", "assignable": true},
      {"id": 2, "name": "Developer", "assignable": true},
      {"id": 3, "name": "Reporter", "assignable": true}
      {"id": 4, "name": "Position", "assignable": true},
      {"id": 5, "name": "Mayor", "assignable": true},
      {"id": 6, "name": "Porter", "assignable": true}];

var arrB = [1,4,5];
Run Code Online (Sandbox Code Playgroud)

我在我的项目中使用了underscore.jslodash.js

从arrA数组中获取id等于arrB项的所有项的优雅方法是什么?

javascript underscore.js lodash

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

Gulp 任务中`return` 语句和`callback` 引用的目的

我在让 gulprun-sequence执行我给它的两个函数时遇到了麻烦(它只会执行其中一个。我有这样的事情:

gulp.task('wire', function(){
  gulp.src('./index.html')
    .pipe(wiredep())
    .pipe(gulp.dest('.'));
});

var filesToInject = ['./app/**/*.js', './app/**/*.css'];
gulp.task('inject', function (){
  var target = gulp.src('./index.html');
  var sources = gulp.src(filesToInject, {read: false});
  return target.pipe(inject(sources))
    .pipe(gulp.dest('.'));
});

gulp.task('wire-inject',  function(callback){
    sequence('wire', 'inject', callback);
});
Run Code Online (Sandbox Code Playgroud)

那只会运行inject任务。只有当我在任务中添加returnbeforegulp.srcwire它才会执行。我还在两个函数参数中添加了回调,并根据文档将其传递到两个任务中的最后一个管道。

gulp.task('wire', function(callback){
  gulp.src('./index.html')
    .pipe(wiredep())
    .pipe(gulp.dest('.'), callback);
});

var filesToInject = ['./app/**/*.js', './app/**/*.css'];
gulp.task('inject', function (callback){
  var target = gulp.src('./index.html');
  var sources = gulp.src(filesToInject, {read: false});
  return target.pipe(inject(sources))
    .pipe(gulp.dest('.'), callback);
});
Run Code Online (Sandbox Code Playgroud)

这并没有引发任何错误,但是如果我将其取出,它不会改变任何内容。这个 …

javascript asynchronous callback node.js gulp

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

使用egrep和xargs删除嵌套的隐藏文件

我正在尝试删除所有隐藏的目录和文件,并递归删除它们.当前目录级别唯一隐藏的目录是.,..但几个目录中的每个目录都有几个隐藏文件(以其开头._).ls -aR | egrep '^\.\w+' |将列出我想要的所有文件,但添加'| xargs'rm'`给了我rm错误"没有这样的文件或目录".

我认为这意味着我要删除的每个目录都需要附加它的父目录和/.但也许我错了.

如何更新此命令以删除这些文件?

regex bash terminal grep

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

无法从节点模块中的异步瀑布获取返回值

我有一个节点模块,它使用异步瀑布执行一些操作。它独立工作,并在通过 AJAX 调用运行时完成所有任务,但是,我的 AJAX 回调从未获得其返回值。

//node module 

var boilerplateFn = function(params){
    async.waterfall([
        function(callback){
            //do task 1
            callback(null, results);
        },
        function(results, callback){
            //task 2 is write
            fs.writeFile(path, results, function(err){
                if (err){
                    console.log(err);
                }else{
                    callback(null, results)
                }
            })
        }
    ], function(err, results){
        return results
    });
}

module.exports = exports = boilerplateFn;
Run Code Online (Sandbox Code Playgroud)

这将正确写入文件,如果我在最终函数中执行 console.log,我可以看到我的结果字符串。

但是,当我尝试将它包含在这样的路线中时:

var components = require('./app/js/node_components');
app.get('/process/:scale/:type', function(req, res){
    var data = processRequest(req.params);
    res.json(data);
});

function processRequest(params){
    console.log(componentents.boilerplateFn(params)) //prints undefined in Terminal
    return {
        result: componentents.boilerplateFn(params);
    }
}
Run Code Online (Sandbox Code Playgroud)

我通过 jQuery …

javascript asynchronous node.js promise express

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

使用reduce或map来大写JavaScript对象中的每个属性

有没有办法为大写对象的所有密钥使用map或者reduce所以结果可以直接退换吗?

它工作得很好 forEach

var o = {
  fname: 'john',
  lname: 'doe'
}
var result = {}
Object.entries(o)
  .forEach((el) => {
    result[el[0].toUpperCase()] = el[1]
  })


console.log('result', result) // works
Run Code Online (Sandbox Code Playgroud)

但试图改变

reduce 不管用

var o = {
  fname: 'john',
  lname: 'doe'
}

var result = Object
  .entries(o)
  .reduce((accum, curr) => {
    return accum[curr[0].toUpperCase()] = curr[1]
  }, {})

console.log('result', result)
Run Code Online (Sandbox Code Playgroud)

javascript reduce functional-programming

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