小编Ber*_*rgi的帖子

HTTP协议的PUT和DELETE以及它们在PHP中的用法

介绍

我读过以下内容:

超文本传输​​协议(HTTP)是网络的生命.每次传输文档或发出AJAX请求时都会使用它.但是,令人惊讶的是,在某些Web开发人员中,HTTP相对未知.

HTTP谓词构成了我们"统一接口"约束的主要部分,并为我们提供了与基于名词的资源相对应的动作.主要或最常用的HTTP谓词(或方法,因为它们被正确调用)是POST,GET,PUTDELETE.

咦?

好吧,我们突然忘记了事情.

PUT并且DELETE,他们说.我只听说过POSTGET,从来没有见过类似的东西$_PUT或者$_DELETE在我曾经看到任何PHP代码经过.

我的问题

这些方法(PUT)和(DELETE)是什么,如果可以在PHP中使用它们,我将如何解决这个问题.

注意:我知道这不是一个真正的问题但我总是抓住一个学习机会,如果我看到一个,并且非常想学习在PHP中使用这些方法,如果可能的话.

php http http-put http-delete http-options-method

56
推荐指数
5
解决办法
6万
查看次数

承诺构造函数与拒绝调用vs抛出错误

在以下代码中:

var p1 = new Promise(function (resolve, reject) {
    throw 'test1';
});

var p2 = new Promise(function (resolve, reject) {
    reject('test2');
});

p1.catch(function (err) {
    console.log(err); // test1
});

p2.catch(function (err) {
    console.log(err); // test2
});
Run Code Online (Sandbox Code Playgroud)

从api 使用reject(in p2)Promise和使用错误(in p1)之间有什么区别throw吗?

它完全一样吗?

如果它相同,为什么我们需要reject回调呢?

javascript promise

55
推荐指数
3
解决办法
2万
查看次数

承诺回调承诺的回调

关于这两个很重要的来源:NZakas - 承诺链中的承诺MDN承诺,我想问以下问题:

每次我们从promise履行处理程序返回一个值时,该值是如何传递给从同一个处理程序返回的新promise?

例如,

let p1 = new Promise(function(resolve, reject) {
    resolve(42);
});

let p2 = new Promise(function(resolve, reject) {
    resolve(43);
});

let p3 = p1.then(function(value) {
    // first fulfillment handler
    console.log(value);     // 42
    return p2;
});

p3.then(function(value) {
    // second fulfillment handler
    console.log(value);     // 43
});
Run Code Online (Sandbox Code Playgroud)

在这个例子中,p2是一个承诺.p3也是源于p1履行处理者的承诺.但是p2 !== p3.相反,p2不知何故神奇地解决43(如何?),然后将该值传递给p3履行处理程序.即使是这里的句子也令人困惑.

你能否向我解释一下究竟发生了什么?我对这个概念感到困惑.

javascript node.js promise es6-promise

55
推荐指数
4
解决办法
3万
查看次数

javascript fetch - 无法在'Response'上执行'json':正文流被锁定

当请求状态大于400(我已尝试过400,423,429状态)时,fetch无法读取返回的json内容.浏览器控制台中显示以下错误

未捕获(承诺)TypeError:无法在'Response'上执行'json':正文流被锁定

我显示了返回的响应对象的内容,如下所示:

在此输入图像描述

但几个月前我仍然可以使用它.

我的问题如下:

  • 这只是Chrome浏览器的行为或获取标准的变化吗?
  • 有没有办法获得这些状态的身体内容?

PS:我的浏览器版本是Google Chrome 70.0.3538.102(正式版本)(64位)

javascript fetch-api

52
推荐指数
4
解决办法
3万
查看次数

用户名中是否应允许Unicode?

为什么大多数(所有?)网站仅支持ASCII用户名?如果管理员决定开始接受Unicode用户名,是否有任何安全注意事项?

security unicode web-services username

49
推荐指数
4
解决办法
6209
查看次数

正确尝试...使用Async/Await捕获语法

我喜欢Async/Await在Typescript等中提供的新功能的平坦性.但是,我不确定我喜欢这样一个事实,即我必须awaittry...catch块的外部声明变量才能在以后使用它.像这样:

let createdUser
try {
    createdUser = await this.User.create(userInfo)
} catch (error) {
    console.error(error)
}

console.log(createdUser)
// business
// logic
// goes
// here
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我,但似乎最好不要在机构中放置多行业务逻辑try,所以我只留下createdUser在块外声明,在块中分配它的替代方案,以及然后用它.

在这种情况下,最佳做法是什么?

javascript try-catch promise async-await ecmascript-2017

49
推荐指数
3
解决办法
2万
查看次数

没有花括号的箭头功能

我是ES6和React的新手,我一直在看箭头功能.为什么有些箭头函数在胖箭头之后使用花括号而有些使用括号?例如:

const foo = (params) => (
    <span>
        <p>Content</p>
    </span>
);
Run Code Online (Sandbox Code Playgroud)

const handleBar = (e) => {
    e.preventDefault();
    dispatch('logout');
};
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

javascript ecmascript-6 react-jsx arrow-functions

47
推荐指数
6
解决办法
1万
查看次数

如何在Haskell中部分定义函数签名?

初始点:

fn :: [a] -> Int
fn = (2 *) . length
Run Code Online (Sandbox Code Playgroud)

比方说,我们只是想约束的返回值,那么我们可以这样写:

fn list = (2 * length list) :: Int
Run Code Online (Sandbox Code Playgroud)

如何限制参数?简单.

fn list = 2 * length (list :: [Char])
Run Code Online (Sandbox Code Playgroud)

虽然这有效,但最好是收集顶部的签名而不是散布在函数体周围.

这是我能得到的最接近的:

fnSig = undefined :: [Char] -> a
fn | False = fnSig
   | True  = (* 2) . length
Run Code Online (Sandbox Code Playgroud)

基于http://okmij.org/ftp/Haskell/partial-signatures.lhs通过http://okmij.org/ftp/Haskell/types.html#partial-sigs

但是,我想要一个更清洁的解决方案.更好地沟通的东西,我的意图是部分限制.像这样的东西,例如:

fn :: [Char] -> a
fn = (2 *) . length
Run Code Online (Sandbox Code Playgroud)

或者可能:

fn :: [Char] -> _
fn …
Run Code Online (Sandbox Code Playgroud)

haskell

46
推荐指数
4
解决办法
2699
查看次数

如何使用Promise.all获取URL数组?

如果我有一个网址数组:

var urls = ['1.txt', '2.txt', '3.txt']; // these text files contain "one", "two", "three", respectively.
Run Code Online (Sandbox Code Playgroud)

我想构建一个如下所示的对象:

var text = ['one', 'two', 'three'];
Run Code Online (Sandbox Code Playgroud)

我一直在努力学习如何做到这一点fetch,这当然会回归Promises.

有些事情我已经试过了工作:

var promises = urls.map(url => fetch(url));
var texts = [];
Promise.all(promises)
  .then(results => {
     results.forEach(result => result.text()).then(t => texts.push(t))
  })
Run Code Online (Sandbox Code Playgroud)

这看起来不对,无论如何它都不起作用 - 我最终没有数组['one','two','three'].

Promise.all在这里使用正确的方法?

javascript promise es6-promise fetch-api

46
推荐指数
4
解决办法
4万
查看次数

TypeScript 中的私有关键字和私有字段有什么区别?

在 TypeScript 3.8+ 中,使用private关键字将成员标记为私有有什么区别:

class PrivateKeywordClass {
    private value = 1;
}
Run Code Online (Sandbox Code Playgroud)

并使用为 JavaScript 提议#私有字段:

class PrivateFieldClass {
    #value = 1;
}
Run Code Online (Sandbox Code Playgroud)

我应该更喜欢一个吗?

encapsulation private class typescript class-fields

46
推荐指数
2
解决办法
5974
查看次数